package com.算法.递归_查找_排序;
public class 汉诺塔 {
    public static void main(String[] args) {
        long now = System.currentTimeMillis();
        printHanoiTower(25,"A","B","C");
        long end = System.currentTimeMillis() - now;
        System.out.println("endTime=>"+(end/1000)+"m");
    }
    /**
     * @param N 盘子的数量（初始的N个从小到大的盘子，N是最大号盘子）
     * @param from 原始柱子（）
     * @param to 目标柱子
     * @param help 辅助柱子
     */
    static void printHanoiTower(int N,String from,String to,String help){
        if(N==1){
            System.out.println("move =>" + N +" from =>"+ from + " to =>" +to);
            return;
        }
        printHanoiTower(N-1,from,to,help);//先把前N-1个盘子移到辅助盘子上（help）
        System.out.println("move =>" + N +" from =>"+ from + " to=>" +to);
        printHanoiTower(N-1,help,to,from);//让N-1回到原先柱子上，在反复剩下的盘子操作
    }
}
